﻿# 请在...处使用多行代码替换
#
# 注意：其他已给出代码仅作为提示，可以修改

...  # 此处可多行

'''
问题2: （10分)在考生文件夹下给出了程序框架文件PY301-2.py，补充代码完成程序。对文件data.txt进行分词，
对长度不少于3个字符的关键词，统计出现的次数，按照出现次数由大到小的顺序输出到文件out2.txt，
每行一个关键词及其出现次数,例如:
科学家:2
达特茅斯:1
'''

import jieba

fr = open('data.txt')
fw = open('out2.txt', 'w')



d = {}
# 获取文本中的每一行
for line in fr:
    # 将获取的每行信息进行分词
    res = jieba.lcut(line)
    for i in res:
        # 对分词的信息进行筛选
        if len(i) >= 3:
            # 字频统计
            d[i] = d.get(i, 0) + 1

# 将字典转换为列表
ls = list(d.items())
ls.sort(key=lambda x: x[1], reverse=True)  # 此行可以按照词频由高到低排序

# 将结果写入到文件中
for i in ls:
    fw.write('{}:{}\n'.format(i[0], i[1]))

fr.close()
fw.close()